﻿#ifndef LINE_DETECT_HEAD
#define LINE_DETECT_HEAD
#include "utils.h"
#include "canny.h"
struct MyPoint {
	int x;
	int y;
};
struct MyPts {
	MyPoint* pts1;		//更浅部分
	MyPoint* pts2;		//更深部分
	int size;
};
//
enum LINEDETECTENUM
{
	LINE_DETECT_TYPE_1,
	LINE_DETECT_TYPE_2,
	LINE_DETECT_TYPE_3,
	LINE_DETECT_TYPE_4,
	LINE_DETECT_TYPE_5,
	LINE_DETECT_TYPE_6,
	LINE_DETECT_TYPE_7,
	LINE_DETECT_TYPE_8,
	LINE_DETECT_TYPE_9,
	LINE_DETECT_TYPE_10,
	LINE_DETECT_TYPE_11,
	LINE_DETECT_TYPE_12,
	LINE_DETECT_TYPE_13,
	LINE_DETECT_TYPE_14,
	LINE_DETECT_TYPE_15,
	LINE_DETECT_TYPE_16,
	LINE_DETECT_TYPE_17,
	LINE_DETECT_TYPE_18,
	LINE_DETECT_TYPE_19,
	LINE_DETECT_TYPE_20,
	LINE_DETECT_TYPE_21,
	LINE_DETECT_TYPE_22,
	LINE_DETECT_TYPE_23,
	LINE_DETECT_TYPE_24,
};
static int Linethres[24] = { 0 };
static MyPts PointTypes[24];
static int PointTypesNum=24;

void InitPointTypes();
void FreePointTypes();


int linedetectprocess(matrix inimg, matrix outimg, matrix gtable, int mflag);

void CreateDebugImg();



#endif // !LINE_DETECT_HEAD
